<script>
  export default {
    onLaunch: function() {
      console.log('App Launch')
    },
    onShow: function(options) {
      console.log('App Show', options);
      // 检查是否从其他小程序返回，并携带了订单信息
      if (
        options.scene === 1038 &&
        options.referrerInfo &&
        options.referrerInfo.extraData &&
        options.referrerInfo.extraData.order_id
      ) {
        const { order_id } = options.referrerInfo.extraData;
        console.log('从微信小店返回，捕获到订单ID:', order_id);
        this.syncOrder(order_id);
      }
    },
    onHide: function() {
      console.log('App Hide')
    },
    methods: {
      async syncOrder(orderId) {
        console.log('[LOG] 开始执行订单同步流程，订单ID:', orderId);
        try {
          console.log(`[LOG] 准备调用 wx.shop.getOrder 获取订单 ${orderId} 的详情`);
          // 1. 调用前端API获取订单详情
          const orderRes = await wx.shop.getOrder({
            order_id: orderId
          });

          console.log('[LOG] wx.shop.getOrder 调用成功，获取到订单详情:', orderRes);

          // 2. 将获取到的订单信息传给云函数进行同步
          uni.showLoading({ title: '正在同步订单...' });
          console.log('[LOG] 准备调用 order-center/syncOrder 云函数');
          const syncRes = await uniCloud.callFunction({
            name: 'order-center',
            data: {
              action: 'syncOrder',
              params: {
                orderInfo: orderRes.order
              }
            }
          });
          console.log('[LOG] order-center/syncOrder 云函数调用完成，返回结果:', syncRes);

          if (syncRes.result.code !== 0) {
            throw new Error(syncRes.result.message);
          }

          uni.showToast({ title: '订单同步成功！', icon: 'success' });

          // 可以在这里发出全局事件，通知“我的”页面刷新
          console.log('[LOG] 发出 ordersUpdated 事件');
          uni.$emit('ordersUpdated');

        } catch (err) {
          console.error('同步订单失败', err);
          uni.showToast({ title: `订单同步失败: ${err.message}`, icon: 'none' });
        } finally {
          uni.hideLoading();
        }
      }
    }
  }
</script>

<style>
  /*每个页面公共css */
  page {
    background-color: #f8faf8;
  }
  
  /* 全局按钮样式 */
  .uni-btn-primary {
    background-color: #4a7c59 !important;
    border-color: #4a7c59 !important;
  }
  
  .uni-btn-success {
    background-color: #4a7c59 !important;
    border-color: #4a7c59 !important;
  }
  
  /* 全局导航栏样式 */
  .uni-navbar {
    background-color: #4a7c59 !important;
  }
</style>